#include "SelectServer.hpp"

//Select:基本已经再后面的内核版本使用较少，缺点太多，优点仅仅只有纯粹的一个多路转接而已
//缺点：
//1.每次调用select都需要把fd集合从用户态往内核态拷贝一次，而每次拷贝都需要通过系统调用进入内核态，且在内核也是遍历访问这个开销在fd很多时会很大
//2.select支持的文件描述符数量太小了，默认是1024
//3.select返回后，需要遍历文件描述符集合，来获取已经就绪的socket
//4.select不支持O_NONBLOCK
//5.每次对要用第三方数组，动不动就需要遍历，十分耗时


int main(int argc,char* argv[])
{
    if(argc!=2)
    {
        std::cout<<"Usage:./select_server port"<<std::endl;
        return 1;
    }
    SelectServer server(atoi(argv[1]));
    server.InitSelect();
    server.WorkLoop();
    return 0;
}